import Vue from "vue"
import App from "./App.vue"
// 引入路由
import router from "./router"
// 引入elementUI
import { MessageBox } from "element-ui"
// 引入TypeNav
// 三级联动组件---全局组件
import TypeNav from "@/components/TypeNav"
import Carousel from "@/components/Carousel"
import Pagination from "@/components/Pagination"
// 注册成全局组件
// 第一个参数：全局组件的名字，第二餐谁：哪一个组件
Vue.component(TypeNav.name, TypeNav)
Vue.component(Carousel.name, Carousel)
Vue.component(Pagination.name, Pagination)
// 注册全局组件
// ElementUI注册组件的时候，还有一种写法，挂在原型上
Vue.prototype.$msgbox = MessageBox
Vue.prototype.$alert = MessageBox.alert
// 引入仓库
import store from "@/store"
Vue.config.productionTip = false
// 引入MockServe.js-----mock数据
import "@/mock/mockServe"
// 引入swiper样式
import "swiper/css/swiper.css"
// 统一接口文件里面全部请求函数
// 统一引入
import * as API from "@/api"
// 引入懒加载图片
import dog from "@/assets/1.gif"
// 引入插件
import VueLazyload from "vue-lazyload"
// 注册插件
Vue.use(VueLazyload, {
    // 懒加载默认的图片
    loading: dog,
})
// 引入表单校验插件
import "@/plugins/validate"
new Vue({
    render: (h) => h(App),
    // 注册全局事件总线
    beforeMount() {
        Vue.prototype.$bus = this
        Vue.prototype.$API = API
    },
    //注册路由信息，当这里书写router的时候，组件身上拥有$route,$router属性
    router,
    // 注册仓库：组件实例的身上会多一个属性$store属性
    store,
}).$mount("#app")
